/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.diogenesistemas.dinggle.model.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Diógenes
 */
public class Publicacao implements Serializable {

    private Integer Id;
    private String titulo;
    private String conteudo;
    private String resumo;/*O Resumo poderá ser um método que retorna uma string alterada*/
    private Date dataPublicacao;
    private Date horaPublicacao;
    private String fotoPath;
    private Integer quantidadeVisualizacoes;
    private List<Tag> listaDeMarcadores;

    public Publicacao() {
    }

    public Publicacao(String titulo, String conteudo, Date dataPublicacao, Date horaPublicacao, String fotoPath) {
        this.titulo = titulo;
        this.conteudo = conteudo;
        this.dataPublicacao = dataPublicacao;
        this.horaPublicacao = horaPublicacao;
        this.fotoPath = fotoPath;
    }

    public Integer getId() {
        return Id;
    }

    public void setId(Integer Id) {
        this.Id = Id;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getConteudo() {
        return conteudo;
    }

    public void setConteudo(String conteudo) {
        this.conteudo = conteudo;
    }

    public String getResumo() {
        return resumo;
    }

    public void setResumo(String resumo) {
        this.resumo = resumo;
    }

    public Date getDataPublicacao() {
        return dataPublicacao;
    }

    public void setDataPublicacao(Date dataPublicacao) {
        this.dataPublicacao = dataPublicacao;
    }

    public Date getHoraPublicacao() {
        return horaPublicacao;
    }

    public void setHoraPublicacao(Date horaPublicacao) {
        this.horaPublicacao = horaPublicacao;
    }

    public String getFotoPath() {
        return fotoPath;
    }

    public void setFotoPath(String fotoPath) {
        this.fotoPath = fotoPath;
    }

    public Integer getQuantidadeVisualizacoes() {
        return quantidadeVisualizacoes;
    }

    public void setQuantidadeVisualizacoes(Integer quantidadeVisualizacoes) {
        this.quantidadeVisualizacoes = quantidadeVisualizacoes;
    }

    public List<Tag> getListaDeMarcadores() {
        return listaDeMarcadores;
    }

    public void setListaDeMarcadores(List<Tag> listaDeMarcadores) {
        this.listaDeMarcadores = listaDeMarcadores;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 29 * hash + (this.Id != null ? this.Id.hashCode() : 0);
        hash = 29 * hash + (this.titulo != null ? this.titulo.hashCode() : 0);
        hash = 29 * hash + (this.conteudo != null ? this.conteudo.hashCode() : 0);
        hash = 29 * hash + (this.resumo != null ? this.resumo.hashCode() : 0);
        hash = 29 * hash + (this.dataPublicacao != null ? this.dataPublicacao.hashCode() : 0);
        hash = 29 * hash + (this.horaPublicacao != null ? this.horaPublicacao.hashCode() : 0);
        hash = 29 * hash + (this.fotoPath != null ? this.fotoPath.hashCode() : 0);
        hash = 29 * hash + (this.quantidadeVisualizacoes != null ? this.quantidadeVisualizacoes.hashCode() : 0);
        hash = 29 * hash + (this.listaDeMarcadores != null ? this.listaDeMarcadores.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Publicacao other = (Publicacao) obj;
        if (this.Id != other.Id && (this.Id == null || !this.Id.equals(other.Id))) {
            return false;
        }
        if ((this.titulo == null) ? (other.titulo != null) : !this.titulo.equals(other.titulo)) {
            return false;
        }
        if ((this.conteudo == null) ? (other.conteudo != null) : !this.conteudo.equals(other.conteudo)) {
            return false;
        }
        if ((this.resumo == null) ? (other.resumo != null) : !this.resumo.equals(other.resumo)) {
            return false;
        }
        if (this.dataPublicacao != other.dataPublicacao && (this.dataPublicacao == null || !this.dataPublicacao.equals(other.dataPublicacao))) {
            return false;
        }
        if (this.horaPublicacao != other.horaPublicacao && (this.horaPublicacao == null || !this.horaPublicacao.equals(other.horaPublicacao))) {
            return false;
        }
        if ((this.fotoPath == null) ? (other.fotoPath != null) : !this.fotoPath.equals(other.fotoPath)) {
            return false;
        }
        if (this.quantidadeVisualizacoes != other.quantidadeVisualizacoes && (this.quantidadeVisualizacoes == null || !this.quantidadeVisualizacoes.equals(other.quantidadeVisualizacoes))) {
            return false;
        }
        if (this.listaDeMarcadores != other.listaDeMarcadores && (this.listaDeMarcadores == null || !this.listaDeMarcadores.equals(other.listaDeMarcadores))) {
            return false;
        }
        return true;
    }
}
